package com.aleaho.cftrack.utils;

import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException;
import com.google.gson.reflect.TypeToken;

import java.util.List;

/**
 * Created by Aleaho on 2017/9/10.
 */

public class JsonTool {
    /**
     * 将JSON字符串转换成Java对象。
     *
     * @param jsonData json字符串
     * @param clazz    对象类型
     * @param <T>      返回类型
     * @return clazz 类型的java对象
     */
    public static <T> T jsonToObject(String jsonData, Class<T> clazz) {
        Gson gson = new Gson();
        T result = null;
        try {
            result = gson.fromJson(jsonData, clazz);
        } catch (JsonSyntaxException e) {
            result = null;
        }
        return result;
    }


    /**
     * 将json数组转换成java对象
     *
     * @param jsonData
     * @param type
     * @param <T>
     * @return
     */
    public static <T> List<T> jsonArrayToObject(String jsonData, Class<T> type) {
        Gson gson = new Gson();
        List<T> result = null;
        try {
            result = gson.fromJson(jsonData, new TypeToken<List<T>>() {
            }.getType());
        } catch (JsonSyntaxException e) {
            result = null;
        }
        return result;
    }


    /**
     * java对象转换成Json字符串。
     *
     * @param bean Java对象
     * @return Json字符串
     */
    public static String beanToJsonString(Object bean) {

        return new Gson().toJson(bean);
    }


}
